![require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages](https://cdn.sanity.io/images/cgdhsj6q/production/be8ab80c8efa5907bc341c6fefe9aa20d239d890-1600x1097.png?w=400&fit=max&auto=format)
Security News
require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
@tybys/native-require
Advanced tools
Export native require function. It can be ignored by webpack preprocessing and avoid bundling webpack node polyfills.
Export native require function. It can be ignored by webpack preprocessing and avoid bundling webpack Node.js polyfills.
$ npm install @tybys/native-require
If you want to write a library which supports both Node.js and browser, and you hope it can be work well with webpack, you can use this package instead of writing __non_webpack_require__
directly in your code.
Plugin is not neccesary.
const { NativeRequireWebpackPlugin } = require('@tybys/native-require/plugins/webpack.js')
module.exports = {
/* ... */
plugins: [
new NativeRequireWebpackPlugin({
variable: '__tybys_native_require__' // this is default value
})
]
}
CommonJS:
const { nativeRequire } = require('@tybys/native-require/index.js') // index.js can not be omitted
if (typeof nativeRequire === 'function') {
// ...
}
ESM format input / TypeScript:
import { nativeRequire } from '@tybys/native-require'
if (typeof nativeRequire === 'function') {
// ...
}
or use injected variable specified in plugin option.
const { nativeRequire } = __tybys_native_require__
if (typeof nativeRequire === 'function') {
// ...
}
NOTE: If you are using commonjs require('@tybys/native-require/index.js')
with @rollup/plugin-commonjs
, you need to add @tybys/native-require/plugins/rollup.js
.
const { nativeRequireRollupPlugin } = require('@tybys/native-require/plugins/rollup.js')
module.exports = {
plugins: [
nativeRequireRollupPlugin(),
/* commonjs node-resolve ... */
]
}
const { nativeRequire } = require('@tybys/native-require/index.js') // index.js can not be omitted
ESM / TypeScript:
import { nativeRequire } from '@tybys/native-require'
if (typeof nativeRequire === 'function') {
// ...
}
<script src="node_modules/@tybys/native-require/dist/native-require.js"></script>
<script>
(function () {
var nativeRequire = nr.nativeRequire;
if (typeof nativeRequire === 'function') {
// ...
}
})();
</script>
Examples are in test
folder.
FAQs
Try to get native require function in any environment.
We found that @tybys/native-require demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.